﻿!function (T, l, y) {
    var S = T.location, k = "script", D = "instrumentationKey", C = "ingestionendpoint", I = "disableExceptionTracking",
        E = "ai.device.", b = "toLowerCase", w = "crossOrigin", N = "POST", e = "appInsightsSDK",
        t = y.name || "appInsights";
    (y.name || T[e]) && (T[e] = t);
    var n = T[t] || function (d) {
        var g = !1, f = !1, m = {initialize: !0, queue: [], sv: "5", version: 2, config: d};

        function v(e, t) {
            var n = {}, a = "Browser";
            return n[E + "id"] = a[b](), n[E + "type"] = a, n["ai.operation.name"] = S && S.pathname || "_unknown_", n["ai.internal.sdkVersion"] = "javascript:snippet_" + (m.sv || m.version), {
                time: function () {
                    var e = new Date;

                    function t(e) {
                        var t = "" + e;
                        return 1 === t.length && (t = "0" + t), t
                    }

                    return e.getUTCFullYear() + "-" + t(1 + e.getUTCMonth()) + "-" + t(e.getUTCDate()) + "T" + t(e.getUTCHours()) + ":" + t(e.getUTCMinutes()) + ":" + t(e.getUTCSeconds()) + "." + ((e.getUTCMilliseconds() / 1e3).toFixed(3) + "").slice(2, 5) + "Z"
                }(),
                iKey: e,
                name: "Microsoft.ApplicationInsights." + e.replace(/-/g, "") + "." + t,
                sampleRate: 100,
                tags: n,
                data: {baseData: {ver: 2}}
            }
        }

        var h = d.url || y.src;
        if (h) {
            function a(e) {
                var t, n, a, i, r, o, s, c, u, p, l;
                g = !0, m.queue = [], f || (f = !0, t = h, s = function () {
                    var e = {}, t = d.connectionString;
                    if (t) for (var n = t.split(";"), a = 0; a < n.length; a++) {
                        var i = n[a].split("=");
                        2 === i.length && (e[i[0][b]()] = i[1])
                    }
                    if (!e[C]) {
                        var r = e.endpointsuffix, o = r ? e.location : null;
                        e[C] = "https://" + (o ? o + "." : "") + "dc." + (r || "services.visualstudio.com")
                    }
                    return e
                }(), c = s[D] || d[D] || "", u = s[C], p = u ? u + "/v2/track" : d.endpointUrl, (l = []).push((n = "SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)", a = t, i = p, (o = (r = v(c, "Exception")).data).baseType = "ExceptionData", o.baseData.exceptions = [{
                    typeName: "SDKLoadFailed",
                    message: n.replace(/\./g, "-"),
                    hasFullStack: !1,
                    stack: n + "\nSnippet failed to load [" + a + "] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: " + (S && S.pathname || "_unknown_") + "\nEndpoint: " + i,
                    parsedStack: []
                }], r)), l.push(function (e, t, n, a) {
                    var i = v(c, "Message"), r = i.data;
                    r.baseType = "MessageData";
                    var o = r.baseData;
                    return o.message = 'AI (Internal): 99 message:"' + ("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) (" + n + ")").replace(/\"/g, "") + '"', o.properties = {endpoint: a}, i
                }(0, 0, t, p)), function (e, t) {
                    if (JSON) {
                        var n = T.fetch;
                        if (n && !y.useXhr) n(t, {
                            method: N,
                            body: JSON.stringify(e),
                            mode: "cors"
                        }); else if (XMLHttpRequest) {
                            var a = new XMLHttpRequest;
                            a.open(N, t), a.setRequestHeader("Content-type", "application/json"), a.send(JSON.stringify(e))
                        }
                    }
                }(l, p))
            }

            function i(e, t) {
                f || setTimeout(function () {
                    !t && m.core || a()
                }, 500)
            }

            var e = function () {
                var n = l.createElement(k);
                n.src = h;
                var e = y[w];
                return !e && "" !== e || "undefined" == n[w] || (n[w] = e), n.onload = i, n.onerror = a, n.onreadystatechange = function (e, t) {
                    "loaded" !== n.readyState && "complete" !== n.readyState || i(0, t)
                }, n
            }();
            y.ld < 0 ? l.getElementsByTagName("head")[0].appendChild(e) : setTimeout(function () {
                l.getElementsByTagName(k)[0].parentNode.appendChild(e)
            }, y.ld || 0)
        }
        try {
            m.cookie = l.cookie
        } catch (p) {
        }

        function t(e) {
            for (; e.length;) !function (t) {
                m[t] = function () {
                    var e = arguments;
                    g || m.queue.push(function () {
                        m[t].apply(m, e)
                    })
                }
            }(e.pop())
        }

        var n = "track", r = "TrackPage", o = "TrackEvent";
        t([n + "Event", n + "PageView", n + "Exception", n + "Trace", n + "DependencyData", n + "Metric", n + "PageViewPerformance", "start" + r, "stop" + r, "start" + o, "stop" + o, "addTelemetryInitializer", "setAuthenticatedUserContext", "clearAuthenticatedUserContext", "flush"]), m.SeverityLevel = {
            Verbose: 0,
            Information: 1,
            Warning: 2,
            Error: 3,
            Critical: 4
        };
        var s = (d.extensionConfig || {}).ApplicationInsightsAnalytics || {};
        if (!0 !== d[I] && !0 !== s[I]) {
            var c = "onerror";
            t(["_" + c]);
            var u = T[c];
            T[c] = function (e, t, n, a, i) {
                var r = u && u(e, t, n, a, i);
                return !0 !== r && m["_" + c]({message: e, url: t, lineNumber: n, columnNumber: a, error: i}), r
            }, d.autoExceptionInstrumented = !0
        }
        return m
    }(y.cfg);

    function a() {
        y.onInit && y.onInit(n)
    }

    (T[t] = n).queue && 0 === n.queue.length ? (n.queue.push(a), n.trackPageView({})) : a()
}(window, document, {
    src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source
// name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied
    ld: -1, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout,
// useXhr: 1, // Use XHR instead of fetch to report failures (if available),
    crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag
    onInit: () => {
        window.blazorApplicationInsights = {
            addTelemetryInitializer: function (telemetryItem) {
                var telemetryInitializer = (envelope) => {
                    if (telemetryItem.ver !== null) {
                        envelope.ver = telemetryItem.ver;
                    }
                    if (telemetryItem.name !== null) {
                        envelope.name = telemetryItem.name;
                    }
                    if (telemetryItem.time !== null) {
                        envelope.time = telemetryItem.time;
                    }
                    if (telemetryItem.iKey !== null) {
                        envelope.iKey = telemetryItem.iKey;
                    }
                    if (telemetryItem.ext !== null) {
                        envelope.ext = telemetryItem.ext;
                    }
                    if (telemetryItem.tags !== null) {
                        envelope.tags = telemetryItem.tags;
                    }
                    if (telemetryItem.data !== null) {
                        Object.assign(envelope.data, telemetryItem.data);
                    }
                    if (telemetryItem.baseType !== null) {
                        envelope.baseType = telemetryItem.baseType;
                    }
                    if (telemetryItem.baseData !== null) {
                        envelope.baseData = telemetryItem.baseData;
                    }
                }
                appInsights.addTelemetryInitializer(telemetryInitializer);
            },
            trackDependencyData: function (data) {
                var dependencyTelemetry = {};

                if (data.id !== null) {
                    dependencyTelemetry["id"] = data.id;
                }
                if (data.name !== null) {
                    dependencyTelemetry["name"] = data.name;
                }
                if (data.duration !== null) {
                    dependencyTelemetry["duration"] = data.duration;
                }
                if (data.success !== null) {
                    dependencyTelemetry["success"] = data.success;
                }
                if (data.startTime !== null) {
                    dependencyTelemetry["startTime"] = new Date(data.startTime);
                }
                if (data.responseCode !== null) {
                    dependencyTelemetry["responseCode"] = data.responseCode;
                }
                if (data.correlationContext !== null) {
                    dependencyTelemetry["correlationContext"] = data.correlationContext;
                }
                if (data.type !== null) {
                    dependencyTelemetry["type"] = data.type;
                }
                if (data.data !== null) {
                    dependencyTelemetry["data"] = data.data;
                }
                if (data.target !== null) {
                    dependencyTelemetry["target"] = data.target;
                }

                appInsights.trackDependencyData(dependencyTelemetry);
            },
            setInstrumentationKey: function (instrumentationKey) {
                appInsights.config.instrumentationKey = instrumentationKey;
            },
            loadAppInsights: function () {
                if (appInsights.loadAppInsights !== undefined) {
                    appInsights.loadAppInsights();
                }
            },
        };
        window.loadAppInsights();
        window.blazorApplicationInsights.addTelemetryInitializer({
            tags: {
                "ai.cloud.role": "Browser Extensions",
                "ai.cloud.roleInstance": "Blazor Wasm",
                "af.version": "0.7.0"
            }
        });
    }, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- As they won't get called)
    cfg: { // Application Insights Configuration
        instrumentationKey: "217da878-9de0-4c4d-955b-a6d32e638649"
    }
});
